home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc Source Code / Utilities / TempIter.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  6.3 KB  |  331 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        TempIter.cpp
  3.  
  4.     Contains:    Template utilities for OpenDoc iterators
  5.  
  6.     Owned by:    Jens Alfke
  7.  
  8.     Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11.  
  12.  
  13. #ifndef SOM_ODDragAndDrop_xh
  14. #include <DragDrp.xh>
  15. #endif
  16.  
  17. #ifndef _TEMPITER_
  18. #include "TempIter.h"
  19. #endif
  20.  
  21. #ifndef SOM_ODFrame_xh
  22. #include <Frame.xh>
  23. #endif
  24.  
  25. #ifndef SOM_ODFacet_xh
  26. #include <Facet.xh>
  27. #endif
  28.  
  29. #ifndef SOM_ODFacetIterator_xh
  30. #include <FacetItr.xh>
  31. #endif
  32.  
  33. #ifndef SOM_ODEmbeddedFramesIterator_xh
  34. #include <EmbFrItr.xh>
  35. #endif
  36.  
  37. #ifndef SOM_ODFrameFacetIterator_xh
  38. #include <FrFaItr.xh>
  39. #endif
  40.  
  41. #ifndef SOM_ODWindowState_xh
  42. #include <WinStat.xh>
  43. #endif
  44.  
  45. #ifndef SOM_ODWindowIterator_xh
  46. #include <WinIter.xh>
  47. #endif
  48.  
  49. #ifdef _OD_IMPL_
  50. #ifndef SOM_ODDragAndDrop_xh
  51. #include <DragDrp.xh>
  52. #endif
  53.  
  54. #ifndef SOM_ODDragItemIterator_xh
  55. #include <DgItmIt.xh>
  56. #endif
  57. #endif
  58.  
  59. #ifndef SOM_ODFocusSet_xh
  60. #include <FocusSet.xh>
  61. #endif
  62.  
  63. #ifndef SOM_ODFocusSetIterator_xh
  64. #include <FocusItr.xh>
  65. #endif
  66.  
  67. #ifndef SOM_ODTypeList_xh
  68. #include <TypeList.xh>
  69. #endif
  70.  
  71. #ifndef SOM_ODTypeListIterator_xh
  72. #include <TypLsItr.xh>
  73. #endif
  74.  
  75. #ifndef _ODMEMORY_
  76. #include "ODMemory.h"
  77. #endif
  78.  
  79. //=====================================================================================
  80. // TempODFacetIterator
  81. //=====================================================================================
  82.  
  83. TempODFacetIterator::TempODFacetIterator( Environment *ev, ODFacet *fa,
  84.                                           ODTraversalType tt, ODSiblingOrder so )
  85.     :BaseTempObj(),
  86.      fEv(ev)
  87. {
  88.     fObj = fa->CreateFacetIterator(ev,tt,so);
  89.     this->First();
  90. }
  91.  
  92.  
  93. ODFacet*
  94. TempODFacetIterator::First( )
  95. {
  96.     return fCurrent = ((ODFacetIterator*)fObj)->First(fEv);
  97. }
  98.  
  99.  
  100. ODFacet*
  101. TempODFacetIterator::Next( )
  102. {
  103.     return fCurrent = ((ODFacetIterator*)fObj)->Next(fEv);
  104. }
  105.  
  106.  
  107. ODBoolean
  108. TempODFacetIterator::IsNotComplete( )
  109. {
  110.     return ((ODFacetIterator*)fObj)->IsNotComplete(fEv);
  111. }
  112.  
  113.  
  114. //=====================================================================================
  115. // TempODFrameFacetIterator
  116. //=====================================================================================
  117.  
  118. TempODFrameFacetIterator::TempODFrameFacetIterator( Environment *ev, ODFrame *fr )
  119.     :BaseTempObj(),
  120.      fEv(ev)
  121. {
  122.     fObj = fr->CreateFacetIterator(ev);
  123.     this->First();
  124. }
  125.  
  126.  
  127. ODFacet*
  128. TempODFrameFacetIterator::First( )
  129. {
  130.     return fCurrent = ((ODFrameFacetIterator*)fObj)->First(fEv);
  131. }
  132.  
  133.  
  134. ODFacet*
  135. TempODFrameFacetIterator::Next( )
  136. {
  137.     return fCurrent = ((ODFrameFacetIterator*)fObj)->Next(fEv);
  138. }
  139.  
  140.  
  141. ODBoolean
  142. TempODFrameFacetIterator::IsNotComplete( )
  143. {
  144.     return ((ODFrameFacetIterator*)fObj)->IsNotComplete(fEv);
  145. }
  146.  
  147.  
  148. //=====================================================================================
  149. // TempODEmbeddedFramesIterator
  150. //=====================================================================================
  151.  
  152. TempODEmbeddedFramesIterator::TempODEmbeddedFramesIterator( Environment *ev,
  153.                                                             ODPart *part, ODFrame *fr )
  154.     :BaseTempObj(),
  155.      fEv(ev)
  156. {
  157.     fObj = part->CreateEmbeddedFramesIterator(ev,fr);
  158.     this->First();
  159. }
  160.  
  161.  
  162. ODFrame*
  163. TempODEmbeddedFramesIterator::First( )
  164. {
  165.     return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->First(fEv);
  166. }
  167.  
  168.  
  169. ODFrame*
  170. TempODEmbeddedFramesIterator::Next( )
  171. {
  172.     return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->Next(fEv);
  173. }
  174.  
  175.  
  176. ODBoolean
  177. TempODEmbeddedFramesIterator::IsNotComplete( )
  178. {
  179.     return ((ODEmbeddedFramesIterator*)fObj)->IsNotComplete(fEv);
  180. }
  181.  
  182.  
  183. //=====================================================================================
  184. // TempODWindowIterator
  185. //=====================================================================================
  186.  
  187. TempODWindowIterator::TempODWindowIterator( Environment *ev, ODWindowState *ws )
  188.     :BaseTempObj(),
  189.      fEv(ev)
  190. {
  191.     fObj = ws->CreateWindowIterator(ev);
  192.     this->First();
  193. }
  194.  
  195.  
  196. ODWindow*
  197. TempODWindowIterator::First( )
  198. {
  199.     return fCurrent = ((ODWindowIterator*)fObj)->First(fEv);
  200. }
  201.  
  202.  
  203. ODWindow*
  204. TempODWindowIterator::Next( )
  205. {
  206.     return fCurrent = ((ODWindowIterator*)fObj)->Next(fEv);
  207. }
  208.  
  209.  
  210. ODBoolean
  211. TempODWindowIterator::IsNotComplete( )
  212. {
  213.     return ((ODWindowIterator*)fObj)->IsNotComplete(fEv);
  214. }
  215.  
  216.  
  217. //=====================================================================================
  218. // TempODDragItemIterator
  219. //=====================================================================================
  220.  
  221. #ifdef _OD_IMPL_
  222.  
  223. TempODDragItemIterator::TempODDragItemIterator( Environment *ev, ODDragAndDrop *d )
  224.     :BaseTempObj(),
  225.      fEv(ev)
  226. {
  227.     fObj = d->GetDragItemIterator(ev);
  228.     this->First();
  229. }
  230.  
  231.  
  232. ODStorageUnit*
  233. TempODDragItemIterator::First( )
  234. {
  235.     return fCurrent = ((ODDragItemIterator*)fObj)->First(fEv);
  236. }
  237.  
  238.  
  239. ODStorageUnit*
  240. TempODDragItemIterator::Next( )
  241. {
  242.     return fCurrent = ((ODDragItemIterator*)fObj)->Next(fEv);
  243. }
  244.  
  245.  
  246. ODBoolean
  247. TempODDragItemIterator::IsNotComplete( )
  248. {
  249.     return ((ODDragItemIterator*)fObj)->IsNotComplete(fEv);
  250. }
  251.  
  252. #endif /*_OD_IMPL_*/
  253.  
  254.  
  255. //=====================================================================================
  256. // TempODFocusSetIterator
  257. //=====================================================================================
  258.  
  259. TempODFocusSetIterator::TempODFocusSetIterator( Environment *ev, ODFocusSet *fs )
  260.     :BaseTempObj(),
  261.      fEv(ev)
  262. {
  263.     fObj = fs->CreateIterator(ev);
  264.     this->First();
  265. }
  266.  
  267.  
  268. ODTypeToken
  269. TempODFocusSetIterator::First( )
  270. {
  271.     return fCurrent = ((ODFocusSetIterator*)fObj)->First(fEv);
  272. }
  273.  
  274.  
  275. ODTypeToken
  276. TempODFocusSetIterator::Next( )
  277. {
  278.     return fCurrent = ((ODFocusSetIterator*)fObj)->Next(fEv);
  279. }
  280.  
  281.  
  282. ODBoolean
  283. TempODFocusSetIterator::IsNotComplete( )
  284. {
  285.     return ((ODFocusSetIterator*)fObj)->IsNotComplete(fEv);
  286. }
  287.  
  288.  
  289. //=====================================================================================
  290. // TempODTypeListIterator
  291. //         ODTypeListIterator returns copies of the data, which must be disposed.
  292. //=====================================================================================
  293.  
  294. TempODTypeListIterator::TempODTypeListIterator( Environment *ev, ODTypeList *t )
  295.     :BaseTempObj(),
  296.      fEv(ev),
  297.      fCurrent(kODNULL)
  298. {
  299.     fObj = t->CreateTypeListIterator(ev);
  300.     this->First();
  301. }
  302.  
  303.  
  304. TempODTypeListIterator::~TempODTypeListIterator( )
  305. {
  306.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  307. }
  308.  
  309.  
  310. ODType
  311. TempODTypeListIterator::First( )
  312. {
  313.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  314.     return fCurrent = ((ODTypeListIterator*)fObj)->First(fEv);
  315. }
  316.  
  317.  
  318. ODType
  319. TempODTypeListIterator::Next( )
  320. {
  321.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  322.     return fCurrent = ((ODTypeListIterator*)fObj)->Next(fEv);
  323. }
  324.  
  325.  
  326. ODBoolean
  327. TempODTypeListIterator::IsNotComplete( )
  328. {
  329.     return ((ODTypeListIterator*)fObj)->IsNotComplete(fEv);
  330. }
  331.